package com.yq.day18._06string;


/**
 * @author 3307235355@qq.com
 * @since 2022/06/19 09:06
 * <p>
 * java 中的双引号的字符串都是String类型的对象
 */
public class Demo1 {
    public static void main(String[] args) {
        String s1 = "hello";
        //长度，常量，创建之后不能再更改
        System.out.println(s1.length());
        //这不是更改，是对象的地址的替换
        /*
        Student s1 =new Student();
        s1 = new Student();
        */
        //字符串是一个常量，更改只是对象的替换，并没有提供set方法
        s1 = "world";
        System.out.println(s1);


        /**
         * String 的构造方法
         * String 这个类不比较特殊，打印对象名的时候，不会打印地址，而是
         * 打印的是集体的值
         */
        String s2 = new String();
        System.out.println(s2);

        char[] s3 = {'a', 'b', 'c'};
        String s4 = new String(s3);
        System.out.println(s4);

        String s5 = new String("hello world!");
        System.out.println(s5);


        /**
         * 字符串的比较  ==比较地址  基本数据类型比较的是内容
         */
        System.out.println("=======字符串的比较 内容相同返回true==========");
        String a1 = "abc";
        String a2 = "ABC";
        String a3 = "abc";
        System.out.println(a1.equals(a2));
        System.out.println(a1.equals(a3));
        System.out.println("=======字符串的比较 忽略大小写==========");
        System.out.println(a1.equalsIgnoreCase(a2));

        System.out.println("=======字符串的遍历==========");
        String a4 = "hello world!";
        for (int i = 0; i < a4.length(); i++) {
            System.out.println(a4.charAt(i));
        }
        System.out.println("=======拆分为数组数组==========");
        char[] chars = a4.toCharArray();
        for (int i = 0; i < chars.length; i++) {
            System.out.println(chars[i]);
        }

        /**
         * 统计字符串的次数
         */
        String d1 = "abc2222BHU1234333333";
        int x = 0;
        int da = 0;
        int num = 0;
        char[] chars1 = d1.toCharArray();
        for (int i = 0; i < chars1.length; i++) {
            if (chars1[i] >= 'A' && chars1[i] <= 'Z') {
                x++;
            }
            if (chars1[i] >= 'a' && chars1[i] <= 'z') {
                da++;
            }
            if (chars1[i] >= '0' && chars1[i] <= '9') {
                num++;
            }
        }
        System.out.println("小写：" + x);
        System.out.println("大写：" + da);
        System.out.println("数字：" + num);


        /**
         * 字符串的截取
         */
        System.out.println("=======字符串的截取==========");
        String num1 = "13526091932";
        //截取后边所有
        System.out.println("=======截取后边所有==========");
        String s7 = num1.substring(3);
        String s9 = num1.substring(7);
        System.out.println(s7);
        System.out.println(s9);

        //    截取指定长度，包含头不包含尾部
        System.out.println("=======截取指定长度，包含头不包含尾部==========");
        String s8 = num1.substring(0, 3);
        System.out.println(s8);


        /**
         * 字符串的替换 replace
         */
        System.out.println("========替换============");
        String t1 ="hello hi";
        String t2 = t1.replace("hi", "hello");
        System.out.println(t2);


        /**
         * 字符换的切割 传入string  返回字符串数组
         */
        String q1 = "hello,hi";
        String[] q2 = q1.split(",");
        System.out.println(q2[0]);
        System.out.println(q2[1]);

    }
}
